import apis from '../../http/apis/apis';
export default {
    namespaced: true,
    state: {
        _id: '',
    },
    mutations: {
        changeID(state, id) {
            state._id = id;
        }
    },
    actions: {
        //actions中定义的所有方法，第一参数接受的都是context        
        // 如果想要通过actions的方法去修改state，只能在actives中先调用mutations的方法
        // 1、actives调用mutations，是通过context.commit()
        // 2、actives调用actives，是通过context.dispatch()
        // 根据需求不同，向不同的后端发送请求，判断登陆结果
        async login(context, user) {
            const radio = user.radio;
            switch (radio) {
                case "出租方":
                    var { data } = await apis.login.loginLessors(user);
                    if (data.status) {
                        context.dispatch('addLogsMsgS', user);
                        context.commit('changeID', data.data[0]._id);
                    } else {
                        context.dispatch('addLogsMsgF', user);
                    }
                    break;
                case "用户":
                    var { data } = await apis.login.loginTenants(user);

                    if (data.status) {
                        context.dispatch('addLogsMsgS', user);
                        context.commit('changeID', data.data[0]._id);
                    } else {
                        context.dispatch('addLogsMsgF', user);
                    }
                    break;
                case "管理员":
                    var { data } = await apis.login.loginAdmins(user);
                    if (data.status) {
                        context.dispatch('addLogsMsgS', user);
                        context.commit('changeID', data.data[0]._id);

                    } else {
                        context.dispatch('addLogsMsgF', user);
                    }
                    break;
            }
            return data;
        },
        // 登录后日志数据库增加数据,状态成功
        async addLogsMsgS(context, user) {
            await apis.logs.addLogsMsg(
                {
                    IPaddress: '本地',
                    username: user.account,
                    handleType: user.radio,
                    handleTime: new Date().toLocaleString(),
                    result: '成功'
                }
            );
            // 将数据添加成功后，跳转页面将自动渲染页面，不用再此处渲染
        },
        // 登录后日志数据库增加数据,状态失败
        async addLogsMsgF(context, user) {
            await apis.logs.addLogsMsg(
                {
                    IPaddress: '本地',
                    username: user.account,
                    handleType: user.radio,
                    handleTime: new Date().toLocaleString(),
                    result: '失败'
                }
            );
            // 将数据添加成功后，跳转页面将自动渲染页面，不用再此处渲染
        },

    }
}





